package com.ruoyi.campus.service.impl;

import java.util.List;
import java.util.Map;

import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.campus.mapper.MyUserInfoMapper;
import com.ruoyi.campus.domain.MyUserInfo;
import com.ruoyi.campus.service.IMyUserInfoService;

/**
 * 用户基本信息Service业务层处理
 *
 * @author zht
 * @date 2021-10-24
 */
@Service
public class MyUserInfoServiceImpl implements IMyUserInfoService
{
    @Autowired
    private MyUserInfoMapper myUserInfoMapper;

    /**
     * 查询用户基本信息
     *
     * @param infoId 用户基本信息主键
     * @return 用户基本信息
     */
    @Override
    public MyUserInfo selectMyUserInfoByInfoId(String infoId)
    {
        return myUserInfoMapper.selectMyUserInfoByInfoId(infoId);
    }

    /**
     * 查询用户基本信息列表
     *
     * @param myUserInfo 用户基本信息
     * @return 用户基本信息
     */
    @Override
    public List<MyUserInfo> selectMyUserInfoList(MyUserInfo myUserInfo)
    {
        return myUserInfoMapper.selectMyUserInfoList(myUserInfo);
    }

    /**
     * 新增用户基本信息
     *
     * @param myUserInfo 用户基本信息
     * @return 结果
     */
    @Override
    public int insertMyUserInfo(MyUserInfo myUserInfo)
    {
        return myUserInfoMapper.insertMyUserInfo(myUserInfo);
    }

    /**
     * 修改用户基本信息
     *
     * @param myUserInfo 用户基本信息
     * @return 结果
     */
    @Override
    public int updateMyUserInfo(MyUserInfo myUserInfo)
    {
        return myUserInfoMapper.updateMyUserInfo(myUserInfo);
    }

    /**
     * 批量删除用户基本信息
     *
     * @param infoIds 需要删除的用户基本信息主键
     * @return 结果
     */
    @Override
    public int deleteMyUserInfoByInfoIds(String[] infoIds)
    {
        return myUserInfoMapper.deleteMyUserInfoByInfoIds(infoIds);
    }

    /**
     * 删除用户基本信息信息
     *
     * @param infoId 用户基本信息主键
     * @return 结果
     */
    @Override
    public int deleteMyUserInfoByInfoId(String infoId)
    {
        return myUserInfoMapper.deleteMyUserInfoByInfoId(infoId);
    }

    /**
     * 查询要审核的用户的相关信息
     * @param myUserInfo 查询条件
     * @return 结果
     */
    @Override
    public List<Map<String, Object>> selectAuditUserList(MyUserInfo myUserInfo) {
        return myUserInfoMapper.selectAuditUserList(myUserInfo);
    }

    /**
     * 根据userId查询要审核的用户的相关信息
     * @param userId 用户id
     * @return 结果
     */
    @Override
    public Map<String, Object> selectAuditUserByUserId(String userId) {
        return myUserInfoMapper.selectAuditUserByUserId(userId);
    }

    /**
     * 根据userId审核通过账号
     * @param userId 用户id
     * @param userName 审核的账号
     * @return
     */
    @Override
    public int passAuditUserByUserId(String userId, String userName) {
        return myUserInfoMapper.passAuditUserByUserId(userId,userName);
    }

    /**
     * 检查学号是否已存在
     * @param number 学号
     * @return  str 1/0 存在/不存在
     */
    @Override
    public String checkNumberUnique(String number) {
        int count = myUserInfoMapper.checkNumberUnique(number);
        if (count > 0){
            return "1";
        }
        return "0";
    }

    /**
     * 检查学号是否已存在str
     * @param myUserInfo 基本信息对象
     * @return str 1/0 存在/不存在
     */
    @Override
    public String checkNumberExist(MyUserInfo myUserInfo) {
        String infoId= StringUtils.isNull(myUserInfo.getInfoId()) ? "-1" : myUserInfo.getInfoId();
        MyUserInfo info = myUserInfoMapper.checkNumberExist(myUserInfo.getNumber());
        if (StringUtils.isNotNull(info) && !infoId.equals(info.getInfoId())){
            return "1";
        }
        return "0";
    }
}
